package Exc.service;

import Exc.domain.*;
import java.util.List;

/**
 * The interface Ip monitoring service.
 *
 * @author fengke
 */
public interface IIpMonitoringService {

    /**
     * RedCode Warning List All RedCode
     * 返回红色代码
     *
     * @return list list
     */
    List<PortAndProtocol> listRedCode();

    /**
     * List opasoft list.
     *
     * @return the list
     */
    List<PortAndProtocol> listOpasoft();

    /**
     * List slammer list.
     *
     * @return the list
     */
    List<PortAndProtocol> listSlammer();

    /**
     * List shock wave list.
     *
     * @return the list
     */
    List<PortAndProtocol> listShockWave();

    /**
     * List welchia list.
     *
     * @return the list
     */
    List<PortAndProtocol> listWelchia();

    /**
     * List blaster list.
     *
     * @return the list
     */
    List<PortAndProtocol> listBlaster();

    /**
     * Gets ip and port count.
     *
     * @return the ip and port count
     */
    List<IpAndPortCount> getIpAndPortCount();

    List<PortAndIpCount> getPortAndIpCount();

    /**
     * List single flow list.
     *
     * @return the list
     */
    List<PortAndProtocol> listSingleFlow();

    /**
     * List smurf list.
     *
     * @return the list
     */
    List<PortAndProtocol> listSmurf();

    /**
     * List land list.
     *
     * @return the list
     */
    List<PortAndProtocol> listLand();

    /**
     * Dos
     * 返回Dos攻击ip
     *
     * @return list list
     */
    List<Dos> listDos();

    /**
     * List d dos list.
     * 列出可能存在DDos攻击的IP
     *
     * @return the list
     */
    List<DDos> listDDos();

    /**
     * List top list.
     *
     * @return the list
     */
    List<FromIpTop> listTop();

    /**
     * delete
     * 通用删除方法
     *
     * @param ip the ip
     */
    void delete(String ip);

    /**
     * deleteDDos
     * 删除DDos
     *
     * @param ip the ip
     */
    void deleteDDos(String ip);

    /**
     * List blackmail list.
     *
     * @return the list
     */
    List<Blackmail> listBlackmail();

    /**
     * List dns blackmail.
     *
     * @return the blackmail
     */
    List<Blackmail> listDns();
}
